/**
 * 放大模式，扩展module1的内容，添加m2方法，但这必须要求module1模块一定要先加载
 * 否则会找不到对象或抛出undefined异常，所以需要采用宽放大模式
 */
var module1 = (function (mod) {

    mod.m3 = function () {
        alert('this is m3 method.');
    };

    return mod;

})(module1);
// 宽放大模式
// })(module1 || {});

// 输入全局变量
var module2 = (function ($, YAHOO) {

})(jQuery, YAHOO);
// 上面的module2模块需要使用jQuery库和YUI库，就把这两个库（其实是两个模块）当作参数输入module1
// 经典文章 JavaScript-Module-Pattern-In-Depth

// AMD: Asynchronous Module Definition 异步模块定义
// 主要有两个Javascript库实现了AMD规范：require.js和curl.js

